﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace TPDiseño.Interfaces
{
    public partial class EmitirOrden : Form
    {
        public EmitirOrden()
        {
            InitializeComponent();
        }

        private void Button_Limpiar_Click(object sender, EventArgs e)
        {
            TextBox_Cod.Text = "";
            TextBox_NomP.Text = "";
            TextBox_Emp.Text = "";
            TextBox_Cod.Focus();
        }

        private void Button_EmitirOrden_Click(object sender, EventArgs e)
        {
            if (DataGridView1.SelectedRows.Count == 1)
            {
                if (Convert.ToInt32(DataGridView1.SelectedCells[3].Value) == 0)
                {
                    MessageBox.Show("El puesto seleccionado no posee evaluaciones", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    Cursor.Current = Cursors.WaitCursor; //cursor de espera
                    Clases_de_Control.Gestor_Evaluacion ge = new Clases_de_Control.Gestor_Evaluacion();
                    ge.buscar(DataGridView1.SelectedRows[0].Cells[0].Value.ToString(), DataGridView1.SelectedRows[0].Cells[1].Value.ToString(), DataGridView1.SelectedRows[0].Cells[2].Value.ToString());
                    this.Close();
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar uno y solo un Puesto", "Error en selección de puesto", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            //EmitirOrden2 orden2 = new EmitirOrden2();
            //orden2.MdiParent = Principal.ActiveForm;
            //orden2.Show();
        }

        private void EmitirOrden_Load(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Maximized;
        }

        private void Button_Cancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void Button_Buscar_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor; //cursor de espera
            
            //envía el msj buscarP() a Gestor_de_Puesto. Devuelve una coleccion de 
            //DTOPyEv.
           List<DTO_s.DTOPyEv> DTOPyEvCol = new List<DTO_s.DTOPyEv>();
           Clases_de_Control.Gestor_de_Puesto gestorP = new Clases_de_Control.Gestor_de_Puesto();
           DTOPyEvCol = gestorP.buscar(TextBox_Cod.Text, TextBox_NomP.Text, TextBox_Emp.Text, "%");
            int fila = 0;
            
            //Limpio la tabla siempre antes de buscar
            DataGridView1.Rows.Clear();

            //ordeno por cantidad de evaluaciones por puesto (mayor a menor)
            DTOPyEvCol.Sort(delegate(DTO_s.DTOPyEv d1, DTO_s.DTOPyEv d2) { return d1._ev.CompareTo(d2._ev); });
            DTOPyEvCol.Reverse();

            //Inserta los datos de puesto y la cant. de evaluaciones en la grilla de la interfaz
            foreach (DTO_s.DTOPyEv DTOPyEv in DTOPyEvCol)
            {
                DataGridView1.Rows.Add();
                DataGridView1[0, fila].Value = DTOPyEv._codP;
                DataGridView1[1, fila].Value = DTOPyEv._nombre;
                DataGridView1[2, fila].Value = DTOPyEv._emp._nombre;
                DataGridView1[3, fila].Value = DTOPyEv._ev;
                fila++;
            
            }
            TextBox_Cod.Focus();

            Cursor.Current = Cursors.Default; //cursor normal
            
        }
    }
}
